#!/bin/bash

#　限定传两个参数
if [ $# -lt 2 ]; then
    echo "Usage:sh $0 user_name user_pass"
    exit 1
fi

# 初始化变量
ROOT_PASS='yll'
USER_NAME=$1
USER_PASS=$2
HOST_LIST=(10.0.0.7 10.0.0.8)

# 第一步，管理主机本地创建用户,设置密码
useradd $USER_NAME
echo $USER_PASS | passwd --stdin $USER_NAME

# userdel $USER_NAME  删除用户的操作指令

# 第二步，管理主机针对已创建的用户，生成密钥对

su - $USER_NAME -c "echo "" | ssh-keygen -t rsa"
PUB_KEY="$(cat /home/$USER_NAME/.ssh/id_rsa.pub)"

# 第三步，利用SSH非免密在所有需要管理主机上创建用户,设置密码
# 第四步，实现拷贝管理主机的公钥内容到对端主机

for host in $HOST_LIST; do
    #创建用户
    sshpass -p$ROOT_PASS ssh -o StrictHostKeyChecking=no root@$host "useradd $USER_NAME"
    sshpass -p$ROOT_PASS ssh -o StrictHostKeyChecking=no root@$host "echo "$USER_PASS" | passwd --stdin $USER_NAME"
    #移动密钥数据
    sshpass -p$ROOT_PASS ssh -o StrictHostKeyChecking=no root@$host "mkdir /home/$USER_NAME/.ssh -pv"
    sshpass -p$ROOT_PASS ssh -o StrictHostKeyChecking=no root@$host "echo $PUB_KEY > /home/$USER_NAME/.ssh/authorized_keys" #复制文件
    sshpass -p$ROOT_PASS ssh -o StrictHostKeyChecking=no root@$host "chmod 600 /home/$USER_NAME/.ssh/authorized_keys"  #设置权限
    sshpass -p$ROOT_PASS ssh -o StrictHostKeyChecking=no root@$host "chown -R $USER_NAME:$USER_NAME  /home/$USER_NAME/.ssh" #设置用户组
done
